[SGM Volatility Lvl]Choppiness Index (CI)
The Choppiness Index is a technical analysis tool used to determine whether a market is trending or consolidating. CI values range between 0 and 100:
- Higher values (close to 100) indicate a choppy market (i.e., the market is consolidating and not trending strongly).
- Lower values (close to 0) signify a trending market (either up or down).
In this script:
- CI values above 62 are considered to represent high volatility.
- CI values below 28 are viewed as representing lower volatility or consolidation.
How the Indicator Works
Choppiness Index Calculation
The CI is calculated using the average true range (ATR) and the high-low range over the specified length:
ci = 100 * math.log10(math.sum(ta.atr(1), length_line) / (ta.highest(length_line) - ta.lowest(length_line))) / math.log10(length_line)
Volatility Determination
The script determines the market's volatility state based on CI:
if ci >= 62
ischarge := 2
if ci <= 28
ischarge := 0
- ischarge = 2 indicates high volatility.
- ischarge = 0 indicates consolidation.
Line Setup
Lines are set on the chart based on the market's volatility:
- If CI increases and indicates high volatility, a line (colored with `volcolor`) is drawn at the close price of the bar.
- If CI decreases and indicates consolidation, a line (colored with `conColor`) is drawn at the close price of the bar.
Line Extension
The lines are automatically extended to the next indicator update or bar:
for i = 0 to array.size(ray) - 1
if i < array.size(ray) - 1
current_line = array.get(ray, i)
next_line = array.get(ray, i + 1)
if not na(current_line) and not na(next_line)
line.set_x2(current_line, line.get_x1(next_line))
else
line.set_x2(current_line, bar_index)
Relevance
Identifying Key Levels
The indicator helps traders identify key levels as follows:
- High Volatility : Lines indicating high volatility suggest strong trending movements. These levels can signify breakout points or areas where the price has made significant moves.
- Consolidation : Lines indicating consolidation suggest the market is ranging. These levels can be used to identify sideways movements, areas of accumulation or distribution, and potential breakout zones.
Potential Future Points of Interest
- High Volatility Lines: Can serve as resistance or support levels if the market revisits these areas.
- Consolidation Lines: Highlight potential zones for price breakouts or reversals when the market transitions from consolidation to a trending phase.
In summary, this indicator can be particularly useful for traders looking to identify periods of high volatility and consolidation. By marking such periods on the chart, traders can better understand market behavior and spot potential trading opportunities.
חפש סקריפטים עבור "THE SCRIPT"
Fibonacci Period Range [UkutaLabs]█ OVERVIEW
The Fibonacci Period Range Indicator is a powerful trading tool that draws levels of support and resistance that are based on key Fibonacci levels. The script will identify the high and low of a range that is specified by the user, then draw several levels of support and resistance based on Fibonacci levels.
The script will also draw extension levels outside of the specified range that are also based on Fibonacci levels. These extension levels can be turned off in the indicator settings.
Each level is also labelled to help traders understand what each line represents. These labels can be turned off in the indicator settings.
The purpose of this script is to simplify the trading experience of users by giving them the ability to customize the time period that is identified, then draw levels of support and resistance that are based on the price action during this time.
█ USAGE
In the indicator settings, the user has access to a setting called Session Range. This gives users control over the range that will be used.
The script will then identify the high and low of the range that was specified and draw several levels of support and resistance based on Fibonacci levels between this range. The user can also choose to have extension levels that display more levels outside of the range.
These lines will extend until the end of the current trading day at 5:00 pm EST.
█ SETTINGS
Configuration
• Display Mode: Determines the number of days that will be displayed by the script.
• Show Labels: Determines whether or not identifying labels will be displayed on each line.
• Font Size: Determines the text size of labels.
• Label Position: Determines the justification of labels.
• Extension Levels: Determines whether or not extension levels will be drawn outside of the high and low of the specified range.
Session
• Session Range: Determines the time period that will be used for calculations.
• Timezone Offset (+/-): Determines how many hours the session should be offset by.
Speedometer RevisitedSpeedometer Revisited is a new way to draw custom metric speedometers and is intended to be a utility for other coders to use.
@rumpypumpydumpy originally introduced the Speedometer Toolkit in version 4 of Pine Script. Since then, Pine Script has been updated to version 5, introducing some amazing new features such as polylines and chart.points. This indicator is an example of what can be done with these newer features.
The indicator starts off with a handful of functions that will be used to create the drawings. Notes are left throughout the code explaining what each line of the functions does. My goal was to make these functions user-friendly and somewhat easy to understand. I then demonstrate two examples: one speedometer with five segments and another with three.
The first example demonstrates how to visually represent the analysts' ratings for a stock using the built-in syminfo.recommendations. The speedometer is divided into five segments, each representing a different level of analyst recommendation: strong sell, sell, hold, buy, and strong buy.
Each segment is drawn using a polyline from the createSeg function, with colors assigned as follows:
Red for 'Strong Sell'
Maroon for 'Sell'
Yellow for 'Hold'
Green for 'Buy'
Lime for 'Strong Buy'
The script identifies the maximum value among the analyst ratings, calculates the midpoint of the corresponding segment, and draws a needle pointing to this midpoint.
The second example employs the speedometer design to display market sentiment through the put-call ratio. The put-call ratio is a gauge of investor sentiment, where values above 1 indicate a bearish sentiment (more puts being bought relative to calls), and values below 1 suggest a bullish outlook (more calls being bought relative to puts).
The speedometer is divided into three segments, reflecting different ranges of the put-call ratio:
Red for a ratio greater than 1 (bearish sentiment)
Yellow for a ratio between 0.8 and 1 (neutral to bearish sentiment)
Lime for a ratio less than 0.8 (bullish sentiment)
Depending on the value of the put-call ratio, the script calculates which segment the current value falls into and determines the appropriate segment number. The script calculates the midpoint of the selected segment and draws a needle pointing to this value.
Both examples show how the speedometer can be used as a visual indicator of certain market conditions, helping traders quickly recognize trends and adjust their strategies accordingly.
A big thanks to @rumpypumpydumpy for his original Speedometer Toolbox. I hope this take on it can be useful for other coders.
Volume Candles By Anil ChawraHow Users Can Make Profit Using This Script:
1. Volume Representation : Each candle on the chart represents a specific time period (e.g., 1 minute, 1 hour, 1 day) and includes information about both price movement and trading volume during that period.
2. Candlestick Anatomy : A volume candle has the same components as a regular candlestick: the body (which represents the opening and closing prices) and the wicks or shadows (which indicate the highest and lowest prices reached during the period).
3. Volume Bars : Instead of just the candlestick itself, volume candles also include a bar or histogram representing the trading volume during that period. The height or length of the volume bar indicates the amount of trading activity.
4. Interpreting Volume : High volume candles typically indicate increased market interest or activity during that period. This could be due to significant buying or selling pressure.
5. Confirmation : Traders often look for confirmation from other technical indicators or price action to validate the significance of a high volume candle. For example, a high volume candle breaking through a key support or resistance level may signal a strong market move.
6. Trend Strength : Volume candles can provide insights into the strength of a trend. A series of high volume candles in the direction of the trend suggests strong momentum, while decreasing volume may indicate weakening momentum or a potential reversal.
7. Volume Patterns : Traders also analyze volume patterns, such as volume spikes or divergences, to identify potential trading opportunities or reversals.
8. Combination with Price Action: Volume analysis is often used in conjunction with price action analysis and other technical indicators to make more informed trading decisions.
9. Confirmation and Validation: It's important to confirm the significance of volume candles with other indicators or price action signals to avoid false signals.
10. Risk Management : As with any trading strategy, proper risk management is crucial when using volume candles to make trading decisions. Set stop-loss orders and adhere to risk management principles to protect your capital.
How the Script Works:
1. Volume Representation : Each candle on the chart represents a specific time period (e.g., 1 minute, 1 hour, 1 day) and includes information about both price movement and trading volume during that period.
2. Candlestick Anatomy : A volume candle has the same components as a regular candlestick: the body (which represents the opening and closing prices) and the wicks or shadows (which indicate the highest and lowest prices reached during the period).
3. Volume Bars : Instead of just the candlestick itself, volume candles also include a bar or histogram representing the trading volume during that period. The height or length of the volume bar indicates the amount of trading activity.
4. Interpreting Volume : High volume candles typically indicate increased market interest or activity during that period. This could be due to significant buying or selling pressure.
5. Confirmation : Traders often look for confirmation from other technical indicators or price action to validate the significance of a high volume candle. For example, a high volume candle breaking through a key support or resistance level may signal a strong market move.
6. Trend Strength : Volume candles can provide insights into the strength of a trend. A series of high volume candles in the direction of the trend suggests strong momentum, while decreasing volume may indicate weakening momentum or a potential reversal.
7. Volume Patterns : Traders also analyze volume patterns, such as volume spikes or divergences, to identify potential trading opportunities or reversals.
8. Combination with Price Action : Volume analysis is often used in conjunction with price action analysis and other technical indicators to make more informed trading decisions.
9. Confirmation and Validation : It's important to confirm the significance of volume candles with other indicators or price action signals to avoid false signals.
10. Risk Management : As with any trading strategy, proper risk management is crucial when using volume candles to make trading decisions. Set stop-loss orders and adhere to risk management principles to protect your capital.
Understanding volume candles can provide valuable insights into market dynamics and help traders make more informed decisions. However, like any technical tool, it's essential to use volume analysis in conjunction with other forms of analysis for comprehensive market assessment.
Understanding volume candles can provide valuable insights into market dynamics and help traders make more informed decisions. However, like any technical tool, it's essential to use volume analysis in conjunction with other forms of analysis for comprehensive market assessment.
Squeeze & Release [AlgoAlpha]Introduction:
💡The Squeeze & Release by AlgoAlpha is an innovative tool designed to capture price volatility dynamics using a combination of EMA-based calculations and ATR principles. This script aims to provide traders with clear visual cues to spot potential market squeezes and release scenarios. Hence it is important to note that this indicator shows information on volatility, not direction.
Core Logic and Components:
🔶EMA Calculations: The script utilizes the Exponential Moving Average (EMA) in multiple ways to smooth out the data and provide indicator direction. There are specific lengths for the EMAs that users can modify as per their preference.
🔶ATR Dynamics: Average True Range (ATR) is a core component of the script. The differential between the smoothed ATR and its EMA is used to plot the main line. This differential, when represented as a percentage of the high-low range, provides insights into volatility.
🔶Squeeze and Release Detection: The script identifies and highlights squeeze and release scenarios based on the crossover and cross-under events between our main line and its smoothed version. Squeezes are potential setups where the market may be consolidating, and releases indicate a potential breakout or breakdown.
🔶Hyper Squeeze Detection: A unique feature that detects instances when the main line is rising consistently over a user-defined period. Hyper squeeze marks areas of extremely low volatility.
Visual Components:
The main line (ATR-based) changes color depending on its position relative to its EMA.
A middle line plotted at zero level which provides a quick visual cue about the main line's position. If the main line is above the zero level, it indicates that the price is squeezing on a longer time horizon, even if the indicator indicates a shorter-term release.
"𝓢" and "𝓡" characters are plotted to represent 'Squeeze' and 'Release' scenarios respectively.
Standard Deviation Bands are plotted to help users gauge the extremity and significance of the signal from the indicator, if the indicator is closer to either the upper or lower deviation bands, this means that statistically, the current value is considered to be more extreme and as it is further away from the mean where the indicator is oscillating at for the majority of the time. Thus indicating that the price has experienced an unusual amount or squeeze or release depending on the value of the indicator.
Usage Guidelines:
☝️Traders can use the script to:
Identify potential consolidation (squeeze) zones.
Gauge potential breakout or breakdown scenarios (release).
Fine-tune their entries and exits based on volatility.
Adjust the various lengths provided in the input for better customization based on individual trading styles and the asset being traded.
Liquidation Levels [LuxAlgo]The Liquidation Levels indicator aims at detecting and estimating potential price levels where large liquidation events may occur.
By analyzing liquidation Levels, traders can identify potential support & resistance levels, identify stop-loss levels, and gauge market sentiment and potential areas of price volatility.
🔶 USAGE
Liquidation refers to the process of forcibly closing a trader's leveraged positions in the market. It occurs when a trader's margin account can no longer support their open positions due to significant losses or a lack of sufficient margin to meet the maintenance margin requirements.
Liquidation events happen at all times and the script focuses on detecting the most significant ones. Bubbles will appear on the relevant price bar when larger trading activity has been detected. Larger bubbles represent more significant potential liquidation levels. The lines attached to the bubbles represent the liquidation zones at that price.
These liquidation levels are based on clusters of price points where highly leveraged traders open long or short positions. High leverage is identified as 100x, 50x, and 25x leverages used for both long and short positions. The script allows users to either remove or customize leverage levels.
Price generally heads towards zones or clusters of liquidity.
🔶 SETTINGS
🔹Liquidation Levels
Reference Price: defines the base price in calculating liquidation levels.
Volume Threshold: The volume threshold is the primary factor in detecting the significant trading activities that could potentially lead to liquidating leveraged positions.
Volatility Threshold: The volatility threshold option is the secondary factor that aims at detecting significant movement in the underlying asset’s price with relatively lower trading activities that could potentially also lead to liquidating high-leveraged positions.
Leverage Options: The leverage options are where the trader will set the desired leverage value and customize the potential liquidation level colors.
Hide Liquidation Bubbles: Toggles the visibility of the bubbles.
Hide Liquidation Levels: Toggles the visibility of the lines.
🔶 RELATED SCRIPTS
Liquidity-Sentiment-Profile
Buyside-Sellside-Liquidity
Supply Demand Profiles [LuxAlgo]The Supply Demand Profiles is a charting tool that measures the traded volume at all price levels on the market over a specified time period and highlights the relationship between the price of a given asset and the willingness of traders to either buy or sell it, in other words, highlights key concepts as significant supply & demand zones, the distribution of the traded volume, and market sentiment at specific price levels within a specified time period, allowing traders to reveal dominant and/or significant price levels and to analyze the trading activity of a particular user-selected range.
In other words, this tool highlights key concepts as significant supply & demand zones, the distribution of the traded volume, and market sentiment at specific price levels within a specified time period, allowing traders to reveal dominant and/or significant price levels and to analyze the trading activity of a particular user-selected range.
Besides having the tool as a combo tool, the uniqueness of this version of the tool compared to its early versions is its ability to benefit from different volume data sources and its ability to use a variety of different polarity methods, where polarity is a measure used to divide the total volume into either up volume (trades that moved the price up) or down volume (trades that moved the price down).
🔶 USAGE
Supply & demand zones are presented as horizontal zones across the selected range, hence adding the ability to visualize the price interaction with them
By default, the right side of the profile is the volume profile which highlights the distribution of the traded activity at different price levels, emphasizing the value area, the range of price levels in which the specified percentage of all volume was traded during the time period, and levels of significance, such as developing point of control line, value area high/low lines, and profile high/low labels
The left side of the profile is the sentiment profile which highlights the market sentiment at specific price levels
🔶 DETAILS
🔹 Volume data sources
The users have the option to select volume data sources as either 'volume' (regular volume) or 'volume delta', where volume represents all the recorded trades that occur at a given bar and volume delta is the difference between the buying and the selling volume, that is, the net demand at a given bar
🔹 Polarity methods
The users are able to choose the methods of how the tool to take into consideration the polarity of the bar (the direction of a bar, green (bullish) or red (bearish) bar) among a variety of different options, such as 'bar polarity', 'bar buying/selling pressure', 'intrabar (chart bars at a lower timeframe than the chart's) polarity', 'intrabar buying/selling pressure', and 'heikin ashi bar polarity'.
Finally, the interactive mode of the tool is activated, as such users can easily modify the intervals of their interest just by selecting the indicator and moving the points on the chart
🔶 SETTINGS
The script takes into account user-defined parameters and plots the profiles and zones
🔹 Calculation Settings
Volume Data Source and Polarity: This option is to set the desired volume data source and polarity method
Lower Timeframe Precision: This option is applicable in case any of the 'Intrabar (LTF)' options are selected, please check the tooltip for further details
Value Area Volume %: Specifies the percentage for the value area calculation
🔹 Presentation Settings
Supply & Demand Zones: Toggles the visibility of the supply & demand zones
Volume Profile: Toggles the visibility of the volume profile
Sentiment Profile: Toggles the visibility of the sentiment profile
🔹 Presentation, Others
Value Area High (VAH): Toggles the visibility of the VAH line and color customization option
Point of Control (POC): Toggles the visibility of the developing POC line and color customization option
Value Area Low (VAL): Toggles the visibility of the VAL line and color customization option
🔹 Supply & Demand, Others
Supply & Demand Threshold %: This option is used to set the threshold value to determine supply & demand zones
Supply/Demand Zones: Color customization option
🔹 Volume Profile, Others
Profile, Up/Down Volume: Color customization option
Value Area, Up/Down Volume: Color customization option
🔹 Sentiment Profile, Others
Sentiment, Bullish/Bearish: Color customization option
Value Area, Bullish/Bearish: Color customization option
🔹 Others
Number of Rows: Specify how many rows the profile will have
Placment: Specify where to display the profile
Profile Width %: Alters the width of the rows in the profile, relative to the profile range
Profile Price Levels: Toggles the visibility of the profile price levels
Profile Background, Color: Fills the background of the profile range
Value Area Background, Color: Fills the background of the value area range
Start Calculation/End Calculation: The tool is interactive, where the user may modify the range by selecting the indicator and moving the points on the chart or can set the start/end time using these options
🔶 RELATED SCRIPTS
Volume-Profile
Volume-Profile-Maps
Volume-Delta
Candle Close AlertCandle Close Alert (CCA) :
The "Candle Close Alert" (CCA) is a custom technical analysis tool. It operates as an overlay on price charts and serves to detect and notify users about significant changes in consecutive candle closes. The script calculates the difference between the closing price of the current candle and the previous candle, referred to as the "close difference." It then compares this close difference against a user-specified threshold value.
When the close difference exceeds the threshold, the script triggers an alert, notifying users of a potential noteworthy event. This alert can serve as a prompt for traders and investors to investigate the current price action further or to consider possible trading decisions .
Additionally, the script enhances visualization by plotting the close differences on the price chart. Positive close differences exceeding the threshold are plotted in green, while negative close differences exceeding the threshold in magnitude are plotted in red. This color-coded visualization helps users quickly identify periods of significant price movement and potential market trends.
However, it's important to note that the CCA script is a standalone tool and should be used in conjunction with comprehensive market analysis. Trading decisions should not be solely based on the alerts and visualizations provided by this script. Instead, they should be considered within the broader context of other technical indicators, fundamental analysis, and risk management strategies. Enjoy it!
AI SuperTrend Clustering Oscillator [LuxAlgo]The AI SuperTrend Clustering Oscillator is an oscillator returning the most bullish/average/bearish centroids given by multiple instances of the difference between SuperTrend indicators.
This script is an extension of our previously posted SuperTrend AI indicator that makes use of k-means clustering. If you want to learn more about it see:
🔶 USAGE
The AI SuperTrend Clustering Oscillator is made of 3 distinct components, a bullish output (always the highest), a bearish output (always the lowest), and a "consensus" output always within the two others.
The general trend is given by the consensus output, with a value above 0 indicating an uptrend and under 0 indicating a downtrend. Using a higher minimum factor will weigh results toward longer-term trends, while lowering the maximum factor will weigh results toward shorter-term trends.
Strong trends are indicated when the bullish/bearish outputs are indicating an opposite sentiment. A strong bullish trend would for example be indicated when the bearish output is above 0, while a strong bearish trend would be indicated when the bullish output is below 0.
When the consensus output is indicating a specific trend direction, an opposite indication from the bullish/bearish output can highlight a potential reversal or retracement.
🔶 DETAILS
The indicator construction is based on finding three clusters from the difference between the closing price and various SuperTrend using different factors. The centroid of each cluster is then returned. This operation is done over all historical bars.
The highest cluster will be composed of the differences between the price and SuperTrends that are the highest, thus creating a more bullish group. The lowest cluster will be composed of the differences between the price and SuperTrends that are the lowest, thus creating a more bearish group.
The consensus cluster is composed of the differences between the price and SuperTrends that are not significant enough to be part of the other clusters.
🔶 SETTINGS
ATR Length: ATR period used for the calculation of the SuperTrends.
Factor Range: Determine the minimum and maximum factor values for the calculation of the SuperTrends.
Step: Increments of the factor range.
Smooth: Degree of smoothness of each output from the indicator.
🔹 Optimization
This group of settings affects the runtime performances of the script.
Maximum Iteration Steps: Maximum number of iterations allowed for finding centroids. Excessively low values can return a better script load time but poor clustering.
Historical Bars Calculation: Calculation window of the script (in bars).
Liquidity Voids (FVG) [LuxAlgo]The Liquidity Voids (FVG) indicator is designed to detect liquidity voids/imbalances derived from the fair value gaps and highlight the distribution of the liquidity voids at specific price levels.
Fair value gaps and liquidity voids are both indicators of sell-side and buy-side imbalance in trading. The only difference is how they are represented in the trading chart. Liquidity voids occur when the price moves sharply in one direction forming long-range candles that have little trading activity, whilst a fair value is a gap in price.
🔶 USAGE
Liquidity can help you to determine where the price is likely to head next. In conjunction with higher timeframe market structure, and supply and demand, liquidity can give you insights into potential price movement. It's essential to practice using liquidity alongside trend analysis and supply and demand to read market conditions effectively.
The peculiar thing about liquidity voids is that they almost always fill up. And by “filling”, we mean the price returns to the origin of the gap. The reason for this is that during the gap, an imbalance is created in the asset that has to be made up for. The erasure of this gap is what we call the filling of the void. And while some voids waste no time in filling, some others take multiple periods before they get filled.
🔶 SETTINGS
The script takes into account user-defined parameters and detects the liquidity voids based on them, where detailed usage for each user-defined input parameter in indicator settings is provided with the related input's tooltip.
🔹 Liquidity Detection
Liquidity Voids Threshold: Act as a filter while detecting the Liquidity Voids. When set to 0 basically means no filtering is applied, increasing the value causes the script to check the width of the void compared to a fixed-length ATR value
Bullish: Color customization option for Bullish Liquidity Voids
Bearish: Color customization option for Bearish Liquidity Voids
Labels: Toggles the visibility of the Liquidity Void label
Filled Liquidity Voids: Toggles the visibility of the Filled Liquidity Voids
🔹 Display Options
Mode: Controls the lookback length of detection and visualization
# Bars: Lookback length customization, in case Mode is set to Present
🔶 RELATED SCRIPTS
Buyside-Sellside-Liquidity
Fair-Value-Gaps
Heikin Ashi ROC Percentile Strategy**User Guide for the "Heikin Ashi ROC Percentile Strategy"**
This strategy, "Heikin Ashi ROC Percentile Strategy", is designed to provide an easy-to-use framework for trading based on the Heikin Ashi Rate of Change (ROC) and its percentiles.
Here's how you can use it:
1. **Setting the Start Date**: You can set the start date for the strategy in the user inputs at the top of the script. The variable `startDate` defines the point from which the script begins executing trades. Simply input the desired date in the format "YYYY MM DD". For example, to start the strategy from March 3, 2023, you would enter `startDate = timestamp("2023 03 03")`.
2. **Adjusting the Midline, Lookback Period, and Stop Loss Level**: The `zerohLine`, `rocLength`, and `stopLossLevel` inputs allow you to adjust the baseline for ROC, the lookback period for the SMA and ROC, and the level at which the strategy stops the loss, respectively. By tweaking these parameters, you can fine-tune the strategy to better suit your trading style or the particular characteristics of the asset you are trading.
3. **Understanding the Trade Conditions**: The script defines conditions for entering and exiting long and short positions based on crossovers and crossunders of the ROC and the upper and lower "kill lines". These lines are defined as certain percentiles of the ROC's highest and lowest values over a specified lookback period. When the ROC crosses above the lower kill line, the script enters a long position; when it crosses below the upper kill line, it exits the position. Similarly, when the ROC crosses below the upper kill line, the script enters a short position; when it crosses above the lower kill line, it exits the position.
In my testing, this strategy performed best on a day and hour basis. However, I encourage you to experiment with different timeframes and settings to see how the strategy performs under various conditions. Remember, there's no one-size-fits-all approach to trading; what works best will depend on your specific circumstances, goals, and risk tolerance.
If you find other useful applications for this strategy, please let me know in the comments. Your feedback is invaluable in helping to refine and improve this tool. Happy trading!
Buyside & Sellside Liquidity [LuxAlgo]The Buyside & Sellside Liquidity indicator aims to detect & highlight the first and arguably most important concept within the ICT trading methodology, Liquidity levels.
🔶 SETTINGS
🔹 Liquidity Levels
Detection Length: Lookback period
Margin: Sets margin/sensitivity for a liquidity level detection
🔹 Liquidity Zones
Buyside Liquidity Zones: Enables display of the buyside liquidity zones.
Margin: Sets margin/sensitivity for the liquidity zone boundaries.
Color: Color option for buyside liquidity levels & zones.
Sellside Liquidity Zones: Enables display of the sellside liquidity zones.
Margin: Sets margin/sensitivity for the liquidity zone boundaries.
Color: Color option for sellside liquidity levels & zones.
🔹 Liquidity Voids
Liquidity Voids: Enables display of both bullish and bearish liquidity voids.
Label: Enables display of a label indicating liquidity voids.
🔹 Display Options
Mode: Controls the lookback length of detection and visualization, where Present assumes last 500 bars and Historical assumes all data available to the user
# Visible Levels: Controls the amount of the liquidity levels/zones to be visualized.
🔶 USAGE
Definitions of Liquidity refer to the availability of orders at specific price levels in the market, allowing transactions to occur smoothly.
In the context of Inner Circle Trader's teachings, liquidity mainly relates to stop losses or pending orders and liquidity level/pool, highlighting a concentration of buy or sell orders at specific price levels. Smart money traders, such as banks and other large institutions, often target these liquidity levels/pools to accumulate or distribute their positions.
There are two types of liquidity; Buyside liquidity and Sellside liquidity .
Buyside liquidity represents a level on the chart where short sellers will have their stops positioned, and Sellside liquidity represents a level on the chart where long-biased traders will place their stops.
These areas often act as support or resistance levels and can provide trading opportunities.
When the liquidity levels are breached at which many stop/limit orders are placed have been traded through, the script will create a zone aiming to provide additional insight to figure out the odds of the next price action.
Reversal: It’s common that the price may reverse course and head in the opposite direction, seeking liquidity at the opposite extreme.
Continuation: When the zone is also broken it is a sign for continuation price action.
It's worth noting that ICT concepts are specific to the methodology developed by Michael J. Huddleston and may not align with other trading approaches or strategies.
🔶 DETAILS
Liquidity voids are sudden changes in price when the price jumps from one level to another. Liquidity voids will appear as a single or a group of candles that are all positioned in the same direction. These candles typically have large real bodies and very short wicks, suggesting very little disagreement between buyers and sellers. The peculiar thing about liquidity voids is that they almost always fill up.
🔶 ALERTS
When an alert is configured, the user will have the ability to be notified in case;
Liquidity level is detected/updated.
Liquidity level is breached.
🔶 RELATED SCRIPTS
ICT-Concepts
ICT-Macros
Imbalance-Detector
Volume Profile Regression Channel [LuxAlgo]The Volume Profile Regression Channel calculates a volume profile from an anchored linear regression channel. Users can choose the starting and ending points for the indicator calculation interval.
Like a regular volume profile, a "line" of control (LOC), value area, and a developing LOC are displayed.
🔶 SETTINGS
Sections: The number of sections the linear regression channel is divided into for the calculation of the volume profile.
Width %: Determines the length of the profile within the channel relative to the channel length.
Value Area %: Highlights the sections starting from the POC whose accumulated volume is equal to the user-defined percentage of the total profile sections volume.
🔶 USAGES
Regular volume profiles are often constructed from a horizontal price area, this can allow highlighting price areas where most trading activity takes place.
However, when price is strongly trending a classical volume profile can sometimes be more uniform. This is where using an angled volume profile can be useful.
The line of control allows highlighting the section of the channel with the most accumulated volume, this line can be used as a potential future support/resistance. This is where an angled volume profile might be the most useful.
The developing LOC highlights the LOC location at a specific time within the profile (from left to right) and can sometimes provide an estimate of the underlying trend in the price.
🔶 DETAILS
To be computed the script requires a left and right chart time coordinates. When adding the script to their charts users can determine the left and right time coordinates by clicking on the chart.
The linear regression channel width is determined so that the channel precisely encompasses the whole price.
🔶 LIMITATIONS
Using a very large calculation interval can return timeouts. Users can reduce the calculation interval to fix that issue from occurring.
The amount of drawing objects that can be used is limited, as such using a high calculation interval can display an incomplete profile.
🔶 ACKNOWLEDGEMENTS
If you are interested in these types of scripts, @HeWhoMustNotBeNamed published a similar script where users can use a custom line angle. See his 'Angled Volume Profile' script from March 2023.
Trend AngleIntroduction:
In today's post, we'll dive deep into the source code of a unique trading tool, the Trend Angle Indicator. The script is an indicator that calculates the trend angle for a given financial instrument. This powerful tool can help traders identify the strength and direction of a trend, allowing them to make informed decisions.
Overview of the Trend Angle Indicator:
The Trend Angle Indicator calculates the trend angle based on the slope of the price movement over a specified period. It uses an Exponential Moving Average (EMA) to smooth the data and an Epanechnikov kernel function for additional smoothing. The indicator provides a visual representation of the trend angle, making it easy to interpret for traders of all skill levels.
Let's break down the key components of the script:
Inputs:
Length: The number of periods to calculate the trend angle (default: 8)
Scale: A scaling factor for the ATR (Average True Range) calculation (default: 2)
Smoothing: The smoothing parameter for the Epanechnikov kernel function (default: 2)
Smoothing Factor: The radius of the Epanechnikov kernel function (default: 1)
Functions:
ema(): Exponential Moving Average calculation
atan2(): Arctangent function
degrees(): Conversion of radians to degrees
epanechnikov_kernel(): Epanechnikov kernel function for additional smoothing
Calculations:
atr: The EMA of the True Range
slope: The slope of the price movement over the given length
angle_rad: The angle of the slope in radians
degrees: The smoothed angle in degrees
Plotting:
Trend Angle: The trend angle, plotted as a line on the chart
Horizontal lines: 0, 90, and -90 degrees as reference points
How the Trend Angle Indicator Works:
The Trend Angle Indicator begins by calculating the Exponential Moving Average (EMA) of the True Range (TR) for a given financial instrument. This smooths the price data and provides a more accurate representation of the instrument's price movement.
Next, the indicator calculates the slope of the price movement over the specified length. This slope is then divided by the scaled ATR to normalize the trend angle based on the instrument's volatility. The angle is calculated using the atan2() function, which computes the arctangent of the slope.
The final step in the process is to smooth the trend angle using the Epanechnikov kernel function. This function provides additional smoothing to the trend angle, making it easier to interpret and reducing the impact of short-term price fluctuations.
Conclusion:
The Trend Angle Indicator is a powerful trading tool that allows traders to quickly and easily determine the strength and direction of a trend. By combining the Exponential Moving Average, ATR, and Epanechnikov kernel function, this indicator provides an accurate and easily interpretable representation of the trend angle. Whether you're an experienced trader or just starting, the Trend Angle Indicator can provide valuable insights into the market and help improve your trading decisions.
Optimized Logarithmic Curve for Bitcoin (BTC/USD) by FICASHello everyone!
I'd like to share with you a handy tool that is incredibly useful for analyzing Bitcoin's price movements. This optimized logarithmic curve indicator is a refined version of the popular "My BTC log curve" indicator, originally created by @quantadelic.
We have made several improvements to enhance its predictive capabilities when it comes to identifying potential price bottoms for Bitcoin BTC/USD.
Description:
In this detailed analysis, we are excited to introduce you to an optimized version of the popular "My BTC log curve" indicator, originally created by @quantadelic. We have refined the indicator for enhanced predictive capabilities when it comes to identifying potential price bottoms for Bitcoin BTC/USD. By putting ourselves in the reader's shoes, we aim to provide a comprehensive and meaningful explanation of our analysis and predictions using this improved tool.
The logarithmic curve is a powerful tool for analyzing price movements in a non-linear fashion, allowing traders and investors to identify critical turning points and trends. With the optimized logarithmic curve, we can more accurately predict potential price bottoms, ultimately guiding better-informed trading and investment decisions.
Key Features of the Optimized Logarithmic Curve:
Improved predictive capabilities: The refined logarithmic curve has been optimized to provide more accurate predictions of potential price bottoms, enabling traders to make better-informed decisions.
Enhanced visualization: The optimized curve offers a clearer visual representation of Bitcoin's price movements, making it easier for traders to identify patterns and trends.
Adaptability: This indicator can be applied to various timeframes, providing insights for both short-term and long-term traders.
The optimized logarithmic curve indicator is based on a logarithmic regression of the USD price of Bitcoin, calculated according to the equation:
y = A * exp(beta * x^lambda + c) + m * x + b
where x is the number of days since the genesis block. All parameters are editable in the script options, allowing traders to customize the curve to their preferences.
Here are some of the key changes made to the original indicator to create the optimized logarithmic curve:
Midline Calculation: The optimized logarithmic curve utilizes an updated method for calculating the midline, which better represents the average price movement of Bitcoin over time. This improved midline calculation provides a more accurate representation of Bitcoin's historical price trajectory, making it easier to identify potential price bottoms.
Cross Line Calculation: We have modified the way cross lines are calculated in the optimized logarithmic curve. These new cross lines are derived from a combination of the updated midline calculation and historical support and resistance levels. This change allows traders to more accurately identify critical points in the market where price action is likely to reverse or continue its trend.
Table Display: a powerful visualization tool designed to provide a comprehensive overview of the relationships between various exponential curves and the Bitcoin price. This table display, integrated into the "FiCAS BTC log curve" indicator, enables traders and analysts to quickly compare and assess the impact of these curves on the market.
Our analysis using the optimized logarithmic curve suggests that Bitcoin might be at a critical price bottom, indicating that selling at this point may not be the most prudent course of action. Instead, traders and investors could consider taking advantage of the potential upswing as the market moves away from the identified price bottom.
Key highlights of this Optimized Logarithmic Curve for Bitcoin (BTC/USD) by FICAS:
Custom Pine Script: Pinescript code serves as the backbone of this strategy, providing a strong foundation for identifying potential opportunities based on the relationships between exponential curves and Bitcoin price.
MACD Indicator: The Moving Average Convergence Divergence (MACD) is integrated to help traders recognize trend reversals, bullish or bearish market conditions, and potential entry or exit points.
Momentum Indicator: By incorporating the Momentum (10, close) indicator, traders can identify the strength of price movements and potential trend continuations or reversals.
RSI and SMA: The Relative Strength Index (RSI) is used to assess overbought or oversold conditions, while the Simple Moving Average (SMA) with a period of 14 and an applied factor of 2 smoothens the data for better trend identification.
IMPORTANT:
While this indicator can be applied to traditional BTC/USD charts, we highly recommend using it on the following chart for optimal results in identifying price bottoms:
BITSTAMP:BTCUSD / CRYPTOCAP:BTC.D * 100
By employing the optimized logarithmic curve indicator on the recommended chart, traders can gain a more accurate perspective on potential price bottoms, leading to improved decision-making.
In conclusion, the optimized logarithmic curve indicator provides valuable insights into Bitcoin's price movements, allowing traders and investors to make more informed decisions. We encourage you to test this refined tool and share your thoughts in the comments section. Special thanks to @quantadelic, the first creator of this indicator, for inspiring us to develop this optimized version. If you have any questions or require further clarification, please feel free to ask. Wishing you success in your trading and investment endeavors!
Please ensure you understand and abide by the TradingView House Rules when using this indicator: www.tradingview.com
EMA CO AlertEMAs play an important role in identifying the mood of the market.
Frequently used short term EMA is 5 and long term EMA is 50.
This script detects the crossover (+ve and -ve) and generates alerts accordingly.
Steps to apply:
1) Open the script on a desired timeframe.
2) Add this indicator on the chart
3) Choose the values of the 2 EMAs from settings
4) Go to the alert window.
5) Select this indicator from the 'Condition' dropdown
6) Create the alert.
This alert will then run in the background and notify you.
Need to apply a one time alert on the scripts.
In addition to above, you can also add this indicator on the chart and it will show green/red lines on the chart for signals.
Market Sessions - By LeviathanA simple indicator to help you keep track of 4 market sessions (default: Tokyo, London, New York, Sydney) in 4 different visual forms (boxes, timeline, zones, colored candles) with many other useful tools.
You can choose between 4 different market sessions. The default ones are Tokyo, London, New York and Sydney but you can easily customize the times, names and colors to make the script plot any session you need. Sessions can be viewed in 4 different ways: boxes, zones, timelines, or just colored candles, all with customizable appearances. You can make your chart cleaner by merging sessions overlaps, choosing a custom lookback period and also picking between various additional settings such as viewing session High/Low or Open/Close change in % or pips, hiding weekends, viewing the Open/Close Line to identify session’s direction and 0.5 level to see session’s “Equilibrium” and much more. More updates with interesting tools will be added in the future.
Note: The script will plot the correct default Tokyo, London, New York and Sydney sessions automatically, your chart/Tradingview app timezone does not matter! If you wish to tweak the open/close times of sessions, just make sure you input them in UTC (but even this can be changed later in the settings)
Settings Overview
SESSIONS
- You can show/hide Tokyo Session, rename it, change the color and set up start/end time.
- You can show/hide London Session, rename it, change the color and set up start/end time.
- You can show/hide New York Session, rename it, change the color and set up start/end time.
- You can show/hide Sydney Session, rename it, change the color and set up start/end time.
* Keep in mind that you can fully change and customize these sessions and therefore create any other sessions or a zone you wish to display.
ADDITIONAL TOOLS AND SETTINGS
1. “Change (Pips)” - this will add the pip distance between Session High and Session Low or the pip distance between Session Open and Session Close to the session label.
2. “Change (%)” - this will add the percentage distance between Session High and Session Low or the percentage distance between Session Open and Session Close to the session label.
3. “Merge Overlaps” - this will merge the overlapping sessions and show only one at a time (end of Tokyo is moved to start of London, the end of London is moved to the start of New York, end of New York is moved to start of Sydney and end of Sydney is moved to start of Tokyo).
4. “Hide Weekends” - this will prevent the script from plotting sessions over the weekend when the markets are closed.
5. “Open/Close Line” - this will draw a line from the session open to the session close (or current price, if session is ongoing).
6. “Session 0.5 Level” - this will draw a horizontal line halfway between the session’s high and the session’s low.
7. “Color Candles” - this will color the bars/candlesticks with the color of the session in which they occurred.
8. Display Type” - Choose between three different ways of session visualization (Boxes, Zones and Candles).
9. “Lookback (Days)” - this input tells the script to only draw sessions for X days back (1 = one day).
10. “Change (%/Pips) Source) - this is where you choose the source of “Change (Pips)” and ”Change (%) ” labels. Picking “Session High/Low” will show you the change between Session High and Session Low and picking “Session Open/Close” will show you the change between Session Open and Session Close.
11. “Input Timezone” - this defines the timezone of the session start/end inputs (you don’t have to change this unless you know what you’re doing)
Make sure to read future update logs to keep track of the most recent additions and settings of this script.
Box generation code inspired by Jos(TradingCode), session box visuals inspired by @boitoki's FX Market Sessions
Bitfinex Shorts StratOverview
This strat applies the data from BITFINEX:USDSHORTS to the RSI indicator in order to provide SHORT/LONG entries as the number of contracts goes up and down. Although Bitfinex has lost relevance over the years its generally considered an exchange dominated by smart money rather than retail. I'd like to see if any insights can be gained by following their trading behaviour.
How to use
Select the underlying security you wish to trade and load the indicator. Select the appropriate short security by searching in the Bitfinex Short Symbol. RSI settings apply to short symbol not the actual asset. Strategy shorts the underlying asset when shorts rise and longs when they drop. The shorts symbol will follow the value of the loaded chart. Works best on 4 hour chart.
Why use shorts only rather than both long/shorts?
Bitfinex longs seem to be on a long-term uptrend accounting for 25x the number of shorts. Might be enormous confidence on part of the whales, but more likely reflects selling spot and buying perp. Given the size disparity and price action I don't think longs info is adding much.
Problems with script:
a) We don't really know the intentions of short players (e.g. speculation or hedging spot)
b) The script uses a decline in shorts as a long signal
c) RSI is a blunt tool there are probably better options for calculating high/lows in shorts
d) Shorts are accumulated both at highs and also when BTC price is already heavily trending down. This suggests some are speculative (at the highs) or protective/hedging during a decline
Takeaways:
Based on this strat Bitfinex whales are more wrong than right.
Results don't carry across well into altcoins using the accompanying short symbol. However, what is interesting is that applying the BITFINEX:BTCUSDSHORTS to altcoin charts does work pretty well.
Strat needs some refinement to control for entries under different circumstances.
Probably not a great idea to use this as a strategy in isolation, but highlights how Bitfinex whale behaviour is a good gauge to follow.
[ChasinAlts] Best Volatility Indicator I hope you all enjoy this one as it does a great job at finding runners I did try to search for an example script to reference for quite a while when i first dreamt up this idea bc needed assistance implementing it. This script in particular was one that I began long ago but got put on the back-burner because I couldn't figure out how to implement the flow of logic until I came across a library titled 'Conditional Averages' and published by the “Pinecoders" account. Thus, the logic in this code is partially derived from that () . To understand what the functions/logic do in the beginning of the 'Functions'' section, you must understand how TV presents it's data through the charts.
Wether on the 1sec TF or the 1day (or ANY other), the only time TV prints a bar/candle is when a trade occurs for that asset (i.e. a change in volume). Even if Open=Close on the same candle, the candle will print with the updated price. The % of candles printed out of the TOTAL possible amount that COULD HAVE been printed is the ultimate output that’s calculated in the script. So, if the lookback setting=10min on the 1min TF and only 7 out of the last 10 candles have printed then the value will appear as 70(%). There are MANY benefits to using this method to measure volatility but its vital to recall that the indicator does nothing to provide the direction of future price movement. One thing I’ve noticed is that when a coin is just beginning it’s ascent and its move is considerably larger/longer than all the other coins OR the plots angle is very steep, it is usually the end of a move and the direction is about to abruptly reverse, continuing with it’s volatility. As volatility increases more and more the plot gets brighter and brighter…and also vise versa.
The settings are as follows:
1) which set of Kucoin’s Margin Coins to use (8 possible sets with 32 coins in each set).
2) input how many minutes ago to start counting the total printed candles from (i.e. if setting is input as 1440, count begins from exactly 24hrs(1440min) ago to present candle.
3) there are 3 different lines to choose from to be able to plot:
i. ‘Includes Open==Close’ = adds to count when bar prints but price does NOT change (=t1)
ii. ‘Does NOT include Open==Close’ = count ONLY updates upon price movement (=t2)
iii. ‘Difference’ = (( t1 - t2 ) / t1 ) *100
*** I’ve got some more great ones I will be uploading soon. Just have to create a description for them
Peace out,
- ChasinAlts
VIDYA Trend StrategyOne of the most common messages I get is people reaching out asking for quantitative strategies that trade cryptocurrency. This has compelled me to write this script and article, to help provide a quantitative/technical perspective on why I believe most strategies people write for crypto fail catastrophically, and how one might build measures within their strategies that help reduce the risk of that happening. For those that don't trade crypto, know that these approaches are applicable to any market.
I will start off by qualifying up that I mainly trade stocks and ETFs, and I believe that if you trade crypto, you should only be playing with money you are okay with losing. Most published crypto strategies I have seen "work" when the market is going up, and fail catastrophically when it is not. There are far more people trying to sell you a strategy than there are people providing 5-10+ year backtest results on their strategies, with slippage and commissions included, showing how they generated alpha and beat buy/hold. I understand that this community has some really talented people that can create some really awesome things, but I am saying that the vast majority of what you find on the internet will not be strategies that create alpha over the long term.
So, why do so many of these strategies fail?
There is an assumption many people make that cryptocurrency will act just like stocks and ETFs, and it does not. ETF returns have more of a Gaussian probability distribution. Because of this, ETFs have a short term mean reverting behavior that can be capitalized on consistently. Many technical indicators are built to take advantage of this on the equities market. Many people apply them to crypto. Many of those people are drawn down 60-70% right now while there are mean reversion strategies up YTD on equities, even though the equities market is down. Crypto has many more "tail events" that occur 3-4+ standard deviations from the mean.
There is a correlation in many equities and ETF markets for how long an asset continues to do well when it is currently doing well. This is known as momentum, and that correlation and time-horizon is different for different assets. Many technical indicators are built based on this behavior, and then people apply them to cryptocurrency with little risk management assuming they behave the same and and on the same time horizon, without pulling in the statistics to verify if that is actually the case. They do not.
People do not take into account the brokerage commissions and slippage. Brokerage commissions are particularly high with cryptocurrency. The irony here isn't lost to me. When you factor in trading costs, it blows up most short-term trading strategies that might otherwise look profitable.
There is an assumption that it will "always come back" and that you "HODL" through the crash and "buy more." This is why Three Arrows Capital, a $10 billion dollar crypto hedge fund is now in bankruptcy, and no one can find the owners. This is also why many that trade crypto are drawn down 60-70% right now. There are bad risk practices in place, like thinking the martingale gambling strategy is the same as dollar cost averaging while also using those terms interchangeably. They are not the same. The 1st will blow up your trade account, and the 2nd will reduce timing risk. Many people are systematically blowing up their trade accounts/strategies by using martingale and calling it dollar cost averaging. The more risk you are exposing yourself too, the more important your risk management strategy is.
There is an odd assumption some have that you can buy anything and win with technical/quantitative analysis. Technical analysis does not tell you what you should buy, it just tells you when. If you are running a strategy that is going long on an asset that lost 80% of its value in the last year, then your strategy is probably down. That same strategy might be up on a different asset. One might consider a different methodology on choosing assets to trade.
Lastly, most strategies are over-fit, or curve-fit. The more complicated and more parameters/settings you have in your model, the more likely it is just fit to historical data and will not perform similar in live trading. This is one of the reasons why I like simple models with few parameters. They are less likely to be over-fit to historical data. If the strategy only works with 1 set of parameters, and there isn't a range of parameters around it that create alpha, then your strategy is over-fit and is probably not suitable for live trading.
So, what can I do about all of this!?
I created the VIDYA Trend Strategy to provide an example of how one might create a basic model with a basic risk management strategy that might generate long term alpha on a volatile asset, like cryptocurrency. This is one (of many) risk management strategies that can reduce the volatility of your returns when trading any asset. I chose the Variable Index Dynamic Average (VIDYA) for this example because it's calculation filters out some market noise by taking into account the volatility of the underlying asset. I chose a trend following strategy because regressions are capturing behaviors that are not just specific to the equities market.
The more volatile an asset, the more you have to back-off the short term price movement to effectively trend-follow it. Otherwise, you are constantly buying into short term trends that don't represent the trend of the asset, then they reverse and loose money. This is why I am applying a trend following strategy to a 4 hour chart and not a 4 minute chart. It is also important to note that following these long term trends on a volatile asset exposes you to additional risk. So, how might one mitigate some of that risk?
One of the ways of reducing timing risk is scaling into a trade. This is different from "doubling down" or "trippling down." It is really a basic application of dollar cost averaging to reduce timing risk, although DCA would typically happen over a longer time period. If it is really a trend you are following, it will probably still be a trend tomorrow. Trend following strategies have lower win rates because the beginning of a trend often reverses. The more volatile the asset, the more likely that is to happen. However, we can reduce risk of buying into a reversal by slowly scaling into the trend with a small % of equity per trade.
Our example "VIDYA Trend Strategy" executes this by looking at a medium-term, volatility adjusted trend on a 4 hour chart. The script scales into it with 4% of the account equity every 4-hours that the trend is still up. This means you become fully invested after 25 trades/bars. It also means that early in the trade, when you might be more likely to experience a reversal, most of your account equity is not invested and those losses are much smaller. The script sells 100% of the position when it detects a trend reversal. The slower you scale into a trade, the less volatile your equity curve will be. This model also includes slippage and commissions that you can adjust under the "settings" menu.
This fundamental concept of reducing timing risk by scaling into a trade can be applied to any market.
Disclaimer: This is not financial advice. Open-source scripts I publish in the community are largely meant to spark ideas that can be used as building blocks for part of a more robust trade management strategy. If you would like to implement a version of any script, I would recommend making significant additions/modifications to the strategy & risk management functions. If you don’t know how to program in Pine, then hire a Pine-coder. We can help!
Smoothed Heikin Ashi Trend on Chart - TraderHalai BACKTESTSmoothed Heikin Ashi Trend on chart - Backtest
This is a backtest of the Smoothed Heikin Ashi Trend indicator, which computes the reverse candle close price required to flip a Heikin Ashi trend from red to green and vice versa. The original indicator can be found in the scripts section of my profile.
This particular back test uses this indicator with a Trend following paradigm with a percentage-based stop loss.
Note, that backtesting performance is not always indicative of future performance, but it does provide some basis for further development and walk-forward / live testing.
Testing was performed on Bitcoin , as this is a primary target market for me to use this kind of strategy.
Sample Backtesting results as of 10th June 2022:
Backtesting parameters:
Position size: 10% of equity
Long stop: 1% below entry
Short stop: 1% above entry
Repainting: Off
Smoothing: SMA
Period: 10
8 Hour:
Number of Trades: 1046
Gross Return: 249.27 %
CAGR Return: 14.04 %
Max Drawdown: 7.9 %
Win percentage: 28.01 %
Profit Factor (Expectancy): 2.019
Average Loss: 0.33 %
Average Win: 1.69 %
Average Time for Loss: 1 day
Average Time for Win: 5.33 days
1 Day:
Number of Trades: 429
Gross Return: 458.4 %
CAGR Return: 15.76 %
Max Drawdown: 6.37 %
Profit Factor (Expectancy): 2.804
Average Loss: 0.8 %
Average Win: 7.2 %
Average Time for Loss: 3 days
Average Time for Win: 16 days
5 Day:
Number of Trades: 69
Gross Return: 1614.9 %
CAGR Return: 26.7 %
Max Drawdown: 5.7 %
Profit Factor (Expectancy): 10.451
Average Loss: 3.64 %
Average Win: 81.17 %
Average Time for Loss: 15 days
Average Time for Win: 85 days
Analysis:
The strategy is typical amongst trend following strategies with a less regular win rate, but where profits are more significant than losses. Most of the losses are in sideways, low volatility markets. This strategy performs better on higher timeframes, where it shows a positive expectancy of the strategy.
The average win was positively impacted by Bitcoin’s earlier smaller market cap, as the percentage wins earlier were higher.
Overall the strategy shows potential for further development and may be suitable for walk-forward testing and out of sample analysis to be considered for a demo trading account.
Note in an actual trading setup, you may wish to use this with volatility filters, combined with support resistance zones for a better setup.
As always, this post/indicator/strategy is not financial advice, and please do your due diligence before trading this live.
Original indicator links:
On chart version -
Oscillator version -
Update - 27/06/2022
Unfortunately, It appears that the original script had been taken down due to auto-moderation because of concerns with no slippage / commission. I have since adjusted the backtest, and re-uploaded to include the following to address these concerns, and show that I am genuinely trying to give back to the community and not mislead anyone:
1) Include commission of 0.1% - to match Binance's maker fees prior to moving to a fee-less model.
2) Include slippage of 10 ticks (This is a realistic slippage figure from searching online for most crypto exchanges)
3) Adjust account balance to 10,000 - since most of us are not millionaires.
The rest of the backtesting parameters are comparable to previous results:
Backtesting parameters:
Initial capital: 10000 dollars
Position size: 10% of equity
Long stop: 2% below entry
Short stop: 2% above entry
Repainting: Off
Smoothing: SMA
Period: 10
Slippage: 10 ticks
Commission: 0.1%
This script still remains to shows viability / profitablity on higher term timeframes (with slightly higher drawdown), and I have included the backtest report below to document my findings:
8 Hour:
Number of Trades: 1082
Gross Return: 233.02%
CAGR Return: 14.04 %
Max Drawdown: 7.9 %
Win percentage: 25.6%
Profit Factor (Expectancy): 1.627
Average Loss: 0.46 %
Average Win: 2.18 %
Average Time for Loss: 1.33 day
Average Time for Win: 7.33 days
Once again, please do your own research and due dillegence before trading this live. This post is for education and information purposes only, and should not be taken as financial advice.
10yr, 20yr, 30yr Averages: Month/Month % Change; SeasonalityCalculates 10yr, 20yr and 30yr averages for month/month % change
~shows seasonal tendencies in assets (best in commodities). In above chart: August is a seasonally bullish month for Gold: All the averages agree. And January is the most seasonally bullish month.
~averages represent current month/previous month. i.e. Jan22 average % change represents whole of jan22 / whole of dec21
~designed for daily timeframe only: I found calling monthly data too buggy to work with, and I thought weekly basis may be less precise (though it would certainly reduce calculation time!)
~choose input year, and see the previous 10yrs of monthly % change readings, and previous 10yrs Average, 20yr Average, 30yr Average for the respective month. Labels table is always anchored to input year.
~user inputs: colors | label sizes | decimal places | source expression for averages | year | show/hide various sections
~multi-yr averges always print, i.e if only 10yrs history => 10yr Av = 20yr Av = 30yr Av. 'History Available' label helps here.
Based on my previously publised script: "Month/Month Percentage % Change, Historical; Seasonal Tendency"
Publishing this as seperate indicator because:
~significantly slower to load (around 13 seconds)
~non-premium users may not have the historical bars available to use 20yr or 30yr averages =>> prefer the lite/speedier version
~~tips~~
~after loading, touch the new right scale; then can drag the table as you like and seperate it from price chart
##Debugging/tweaking##
Comment-in the block at the end:
~test/verifify specific array elements elements.
~see the script calculation/load time
~~other ideas ~~
~could tweak the array.slice values in lines 313 - 355 to show the last 3 consecutive 10yr averages instead (i.e. change 0, 10 | 0,20 | 0, 30 to 0, 10 | 10, 20 | 20,30)
~add 40yr average by adding another block to each of the array functions, and tweaking the respective labels after line 313 (though this would likely add another 5 seconds to the load time)
~use alternative method for getting obtaining multi-year values from individual month elements. I used array.avg. You could try array.median, array.mode, array.variance, array.max, array.min (lines 313-355)
Everything Bitcoin [Kioseff Trading]Hello!
This script retrieves most of the available Bitcoin data published by Quandl; the script utilizes the new request.security_lower_tf() function.
Included statistics,
True price
Volume
Difficulty
My Wallet # Of Users
Average Block Size
api.blockchain size
Median Transaction Confirmation Time
Miners' Revenue
Hash Rate
Cost Per Transaction
Cost % of Transaction Volume
Estimated Transaction Volume USD
Total Output Volume
Number Of Transactions Per Block
# of Unique BTC Addresses
# of BTC Transactions Excluding Popular Addresses
Total Number of Transactions
Daily # of Transactions
Total Transaction Fees USD
Market Cap
Total BTC
Retrieved data can be plotted as line graphs; however, the data is initially split between two tables.
The image above shows how the requested Bitcoin data is displayed.
However, in the user inputs tab, you can modify how the data is displayed.
For instance, you can append the data displayed in the floating statistics box to the stagnant statistics box.
The image above exemplifies the instance.
You can hide any and all data via the user inputs tab.
In addition to data publishing, the script retrieves lower timeframe price/volume/indicator data, to which the values of the requested data are appended to center-right table.
The image above shows the script retrieving one-minute bar data.
Up arrows reflect an increase in the more recent value, relative to the immediately preceding value.
Down arrows reflect a decrease in the more recent value relative to the immediately preceding value.
The ascending minute column reflects the number of minutes/hours (ago) the displayed value occurred.
For instance, 15 minutes means the displayed value occurred 15 minutes prior to the current time (value).
Volume, price, and indicator data can be retrieved on lower timeframe charts ranging from 1 minute to 1440 minutes.
The image above shows retrieved 5-minute volume data.
Several built-in indicators are included, to which lower timeframe values can be retrieved.
The image above shows LTF VWAP data. Also distinguished are increases/decreases for sequential values.
The image above shows a dynamic regression channel. The channel terminates and resets each fiscal quarter. Previous channels remain on the chart.
Lastly, you can plot any of the requested data.
The new request.security_lower_tf() function is immensely advantageous - be sure to try it in your scripts!